
#include<stdlib.h>

/**
 * 静态二维数组
 */
void initArr0(){
    //二维数组
    int arr2[3][4] = {{1,  12, 13, 14},
                      {21, 22, 23, 24},
                      {31, 32, 33, 34}};

    //取二维数组每行首元素地址
    int * p0=arr2[0];
    int * p1=arr2[1];
    int * p2=arr2[2];
    int * arrp={p0,p1,p2};
    int ** pp1=&arrp;
}

/**
 * 二级指针二维数组
 */
void initArr1(){
    int row = 3;
    int col = 4;
    //开辟一个二级指针内存空间(指针数组)
    int **pp =(int **) malloc(sizeof(int *) * row);
    for (int i = 0; i < row; ++i) {
        //开辟内层数组内存空间,二级指针采用了 p[i] 这种类似于数组索引的操作方式。
        pp[i] = malloc(col * sizeof(int));
        for (int j = 0; j < col; ++j) {
            pp[i][j] = 1;
        }
    }
}
